package API.ExerciseDome;

import java.time.LocalDate;
import java.util.Calendar;
import java.util.Scanner;

/**
 * ClassName:ExerciseText006
 * Package:API.ExerciseDome
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/3-13:11
 * @Version:v1.0
 */
public class ExerciseText006 {
    /*
    * 判断任意的一个年份是闰年还是平年
    * 要求：用JDK7和JDK8两种方式判断
    *
    * -----提示-----
    * 二月有29天是闰年
    * 一年有366天是闰年
    * */
    public static void main(String[] args) {
        /*JDK7
        * 1.我们可以把时间设置为2000年3月1日
        * 再把日历往前减一天
        * 看当前时间是28号还是29号
        *
        * 2.2001年1月1日
        * 往前减一天
        * 统计这一天是一年中的第几天 366*/
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你想要查询的年份：");
        int year = sc.nextInt();
        System.out.println("---JDK7---");
        JDK7(year);
        System.out.println("---JDK8---");
        JDK8(year);



    }

    private static void JDK8(int year) {
        //设定时间为2000年的3月1日
        LocalDate ld = LocalDate.of(year, 3, 1);
        //往前减一天
        LocalDate ld2 = ld.minusDays(1);
        //获取这一天是一个月中的几号
        int day=ld2.getDayOfMonth();
        System.out.println(day);
        if (day==29){
            System.out.println("这一年是闰年!");
        }else {
            System.out.println("这一年不是闰年!");
        }

        //true   闰年
        //false  平年
        System.out.println(ld.isLeapYear());

    }

    private static void JDK7(int year) {
        Calendar c = Calendar.getInstance();
        c.set(year,2,1);//月份的范围是0~11
        //把日历往前减一天
        c.add(Calendar.DAY_OF_MONTH,-1);
        //看当前的时间是28号还是29号
        int day =c.get(Calendar.DAY_OF_MONTH);
        System.out.println(day);
        if (day==29){
            System.out.println("这一年是闰年!");
        }else {
            System.out.println("这一年不是闰年!");
        }

    }
}
